UPDATE: Its also a general plugin system for dividing any Java program
into Jar files which can be loaded from inside a Jar file that contains JSelfModify.

Copied from: http://sourceforge.net/projects/jselfmodify

Dynamic tree of Java objects encapsulates hard-drive and Jar/Zip files (and their inner files) and Java objects all the same way. Create new ways of communication as executable Jar files, like a paint program that creates/uses paint programs as tools

    * Most Java softwares that use java.io.File and/or load files from inside themself, have redundant code to do it different ways for different functions. Use JSelfModify to change each of those things to 1 line of code.
    * This project started in CodeSimian which is a Jar file that can save new Jar files as it self modifies. Its branched into 2 of my other sourceforge projects (Audivolv and HumanAINet). Its time to merge that code into a new project.
    * Would be great for artificial intelligence that generates variations of itself as new executable Jar files. Just be careful which parts you allow it to modify. If code is modified, you could use Javassist to recompile it at runtime, for example.
    * Different operating systems have different behaviors for read, write, append, delete, and list files. JSelfModify's uses the same Java interface for those things regardless of if its hard-drive, inner files of a jar/zip, Java objects, or whatever file-system-like thing you add to it.
    * Version 0.2 is starting to use GET commands as general functions, like /log/"print this to the log stream" or a "set x to y" with 2 recursive paths as parameters: /=/"/destination"/"/path/of/source"

